<?php
/*
 Retorno PagSeguro 2.0 - PHP e MySQL
 por Diogo Dourado - www.dourado.net
 Última Atualização: 09/06/2011
 Se você ainda não é cadastrado no PagSeguro, utilize o link abaixo para se cadastrar:
 https://pagseguro.uol.com.br/?ind=528005
 * 
 * 
 * 
 * 
 * 
 * daqsdqsa
*/
header('Content-Type: text/html; charset=ISO-8859-1');

/* Edite este arquivo e insira suas configurações */

require_once '../auxilios/PagSeguroRetornoConfig.php';
require_once '../DAO/PagSeguroProdutosDAO.php';
require_once '../DAO/PagSeguroTransacoesDAO.php';
require_once '../DAO/LogPostDAO.php';
require_once '../DAO/StatusTransacaoDAO.php';

require_once '../negocio/PagSeguroTransacoes.php';
require_once '../negocio/PagSeguroProdutos.php';
require_once '../negocio/LogPost.php';
require_once '../negocio/StatusTransacao.php';

/* Não é necessário alterar nada desta linha para baixo */

include 'PagSeguroRetornoFuncoes.php';
define('TOKEN', $retorno_token);



        $logPostDAO= new LogPostDAO();
        $logPost= new LogPost();

if (count($_POST) > 0) {
	
	$npi = new PagSeguroNpi();
	$result = $npi->notificationPost();
	
	$transacaoID = isset($_POST['TransacaoID']) ? $_POST['TransacaoID'] : '';
        $statusTransacao=convertem($result);
        //verifica a resposta de confirmação do pagseguro
        if($result=="VERIFICADO"){
            //objetos de dados
            $produtoDAO= new PagSeguroProdutosDAO();
            $transacaoDAO= new PagSeguroTransacoesDAO();
            $statusTransacaoDAO= new StatusTransacaoDAO();

            //objetos de negócio
            $statusTransacao= new StatusTransacao();
            $transacao= new PagSeguroTransacoes();
            //pega os dados da transacao
            $transacao->setVendedorEmail($_POST['VendedorEmail']);
            $transacao->setTransacaoId( $_POST['TransacaoID']);
		$transacao->setReferencia($_POST['Referencia']);
		$transacao->setExtras(MoedaBR($_POST['Extras']));
		$transacao->setTipoFrete($_POST['TipoFrete']);
		$transacao->setValorFrete(MoedaBR($_POST['ValorFrete']));
		$transacao->setDataTransacao(ConverterData($_POST['DataTransacao']));
		$transacao->setAnotacao($_POST['Anotacao']);
		$transacao->setTipoPagamento($_POST['TipoPagamento']);
                $transacao->setStatusTransacao($_POST['StatusTransacao']);

		$transacao->setCliNome($_POST['CliNome']);
		$transacao->setCliEmail($_POST['CliEmail']);
		$transacao->setCliEndereco($_POST['CliEndereco']);
		$transacao->setCliNumero($_POST['CliNumero']);
		$transacao->setCliComplemento( $_POST['CliComplemento']);
		$transacao->setCliBairro( $_POST['CliBairro']);
		$transacao->setCliCidade($_POST['CliCidade']);
		$transacao->setCliEstado( $_POST['CliEstado']);
		$transacao->setCliCEP($_POST['CliCEP']);
		$transacao->setCliTelefone( $_POST['CliTelefone']);

		$transacao->setNumItens($_POST['NumItens']);
                //verifica se a transação ja existe
                if($transacaoDAO->existe($transacao->getTransacaoId())){
                  //atualiza o status da transação
                   $transacaoDAO->atualizarStatusTransacao($transacao);
                }
                else{
                    //vai inserir no banco
                    $transacaoDAO->salvar($transacao);
                }
                //registra a mudança de status da transação  no banco de dados
                $statusTransacao->setIdTransacao($transacao->getTransacaoId());
                $statusTransacaoDAO->salvar($statusTransacao);
                //verifica se os produtos ja foram cadastrados pega os produtos da transação
                if (!$produtoDAO->verificarProdutos($transacao->getVendedorEmail(), $transacao->getTransacaoId())) {
			for($i=1;$i<=$transacao->getNumItens();$i++) {
                            $produto= new PagSeguroProdutos();
                            $produto->setProdID($_POST["ProdID_{$i}"]);
                            $produto->setProdDescricao($_POST["ProdDescricao_{$i}"]);
                            $produto->setProdValor(MoedaBR($_POST["ProdValor_{$i}"]));
                            $produto->setProdQuantidade( $_POST["ProdQuantidade_{$i}"]);
                            $produto->setVendedorEmail($transacao->getVendedorEmail());
                            $produto->setProdFrete(MoedaBR($_POST["ProdFrete_{$i}"]));
                            $produto->setTransacaoID($transacao->getTransacaoId());

                            $produtoDAO->salvar($produto);
                        }
                 }
                 //registra o log no banco dados
                 $logPost->setValor("VERIFICADO COM SUCESSO O POST");

	/*if (convertem($result) == convertem("Aguardando pagamento")) {
		// Recebendo Dados
		$VendedorEmail  = $_POST['VendedorEmail'];
		$TransacaoID = $_POST['TransacaoID'];
		$Referencia = $_POST['Referencia'];
		$Extras = MoedaBR($_POST['Extras']);
		$TipoFrete = $_POST['TipoFrete'];
		$ValorFrete = MoedaBR($_POST['ValorFrete']);
		$DataTransacao = ConverterData($_POST['DataTransacao']);
		$Anotacao = $_POST['Anotacao'];
		$TipoPagamento = $_POST['TipoPagamento'];
		$StatusTransacao = $_POST['StatusTransacao'];

		$CliNome = $_POST['CliNome'];
		$CliEmail = $_POST['CliEmail'];
		$CliEndereco = $_POST['CliEndereco'];
		$CliNumero = $_POST['CliNumero'];
		$CliComplemento = $_POST['CliComplemento'];
		$CliBairro = $_POST['CliBairro'];
		$CliCidade = $_POST['CliCidade'];
		$CliEstado = $_POST['CliEstado'];
		$CliCEP = $_POST['CliCEP'];
		$CliTelefone = $_POST['CliTelefone'];

		$NumItens = $_POST['NumItens'];
		
		// Gravando Dados
		mysql_query("INSERT into ceape_pagsegurotransacoes SET
		VendedorEmail='$VendedorEmail',	
		TransacaoID='$TransacaoID',	
		Referencia='$Referencia',	
		Extras='$Extras',	
		TipoFrete='$TipoFrete',	
		ValorFrete='$ValorFrete',	
		DataTransacao='$DataTransacao',	
		Anotacao='$Anotacao',	
		TipoPagamento='$TipoPagamento',	
		StatusTransacao='$StatusTransacao',	
		CliNome='$CliNome',	
		CliEmail='$CliEmail',	
		CliEndereco='$CliEndereco',	
		CliNumero='$CliNumero',	
		CliComplemento='$CliComplemento',	
		CliBairro='$CliBairro',	
		CliCidade='$CliCidade',	
		CliEstado='$CliEstado',	
		CliCEP='$CliCEP',	
		CliTelefone='$CliTelefone',	
		NumItens='$NumItens',	
		Data=now();");

		// Recebendo e gravando produtos
		$Processo = mysql_query("SELECT VendedorEmail FROM ceape_pagseguroprodutos WHERE VendedorEmail='$VendedorEmail' AND TransacaoID='$TransacaoID'");
		if (mysql_num_rows($Processo)==0) {
			for($i=1;$i<=$NumItens;$i++) {
				
				$ProdID = $_POST["ProdID_{$i}"];
				$ProdDescricao = $_POST["ProdDescricao_{$i}"];
				$ProdValor = MoedaBR($_POST["ProdValor_{$i}"]);
				$ProdQuantidade = $_POST["ProdQuantidade_{$i}"];
				$ProdFrete = MoedaBR($_POST["ProdFrete_{$i}"]);
		
				mysql_query("INSERT into ceape_pagseguroprodutos SET
				VendedorEmail='$VendedorEmail',	
				TransacaoID='$TransacaoID',	
				Ordem='$i',	
				ProdID='$ProdID',	
				ProdDescricao='$ProdDescricao',	
				ProdValor='$ProdValor',	
				ProdQuantidade='$ProdQuantidade',	
				ProdFrete='$ProdFrete'");			
			}
		}*/
	}else if($result=="FALSO"){
            $logPost->setValor("ERRO: PAGSEGURO RETORNOU FALSO");
            
        }
        else{
           $logPost->setValor("ERRO: NÃO FOI RETORNONADO NADA DO PAGSEGURO!");
        }
        $logPostDAO->salvar($logPost);
}

else {
        $logPost->setValor("PÁGINA REDIRECIONADA.");
        $logPostDAO->salvar($logPost);
	//Header("Location: $retorno_site"); exit();
        echo "<script language='javascript'>";
        echo "document.location.href = '$retorno_site'";
        echo "</script>";
}
?>